/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/

package CONTABILIDAD_CONTROLADOR;

import COBRANZA_MODELO.COB_FACTURA;
import CONTABILIDAD_MODELO.CON_AGUINALDO_CABECE_COMPRO;
import CONTABILIDAD_MODELO.CON_CENTRO_COSTO;
import CONTABILIDAD_MODELO.CON_CHEQUE;
import CONTABILIDAD_MODELO.CON_COMPROBANTE;
import CONTABILIDAD_MODELO.CON_CUENTA_COMPROBANTE;
import CONTABILIDAD_MODELO.CON_CUENTA_CONTABLE;
import CONTABILIDAD_MODELO.CON_FECHA_CIERRE;
import CONTABILIDAD_MODELO.CON_MONEDA;
import CONTABILIDAD_MODELO.CON_PLANILLA_PAGO_QUINQUENIO;
import CONTABILIDAD_MODELO.CON_PRIMA_CABECE_COMPROBANTE;
import CONTABILIDAD_MODELO.CON_PRIMA_PEN_CABECE_COMPRO;
import CONTABILIDAD_MODELO.CON_TIPO_DE_CAMBIO;
import CONTABILIDAD_MODELO.CON_TIPO_RECURRENTE;
import Conexion.Conexion;
import RRHH_Modelo.RHH_PAGOS_QUINCENA_CABECERA;
import RRHH_Modelo.RHH_PLANILLA_AGUINALDO_CABECE;
import RRHH_Modelo.RHH_PLANILLA_EMPLEADOS_CABECE;
import RRHH_Modelo.RHH_PLANILLA_FINIQUITO_CABECE;
import RRHH_Modelo.RHH_PLANILLA_PREV_INDEM_CABE;
import RRHH_Modelo.RHH_PLANILLA_PRIMA_CABECE;
import RRHH_Modelo.RHH_PLANILLA_PRIMA_CABE_PENDI;
import RRHH_Modelo.RHH_PLANILLA_PROV_AGUINAL_CABE;
import RRHH_Modelo.RHH_PLANILLA_PROV_PRIMA_CABE;
import RRHH_Modelo.RHH_PLANILLA_RETROACTIVO_CABE;
import RRHH_Modelo.RHH_QUINQUENIO;
import RRHH_Modelo.RHH_QUINQUENIO_CABECERA;
import RRHH_Modelo.RHH_USUARIO;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 *
 * @author equipo_2
 */
@WebServlet(name = "CON_BUSCAR_COMPROBANTES_CONTROLLER", urlPatterns = {"/CON_BUSCAR_COMPROBANTES_CONTROLLER"})
public class CON_BUSCAR_COMPROBANTES_CONTROLLER extends HttpServlet {
    
    /**
     * Processes requests for both HTTP <code>GET</code> and <code>POST</code>
     * methods.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        try (PrintWriter out = response.getWriter()) {
            
        }
    }
    
    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
    /**
     * Handles the HTTP <code>GET</code> method.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        try {
            String proceso=request.getParameter("proceso");
            
            RHH_USUARIO usuario = ((RHH_USUARIO)request.getSession().getAttribute("usr"));
            Conexion con = new Conexion(usuario.getUSUARIO(), usuario.getPASSWORD());
            
            String html="";
            switch(proceso){
                case "busquedaTipo":
                    html+=busquedaTipo(request, con);
                    break;
                case "AnularComprobante":
                    html+=AnularComprobante(request, con);
                    break;
                case "busqueadaRapida":
                    html+=busqueadaRapida(request, con);
                    break;
                case "obtenerListaTipo":
                    html+=obtenerListaTipo(request, con);
                    break;
                case "desvincularCargo":
                    html+=desvincularCargo(request, con);
                    break;
                case "seleccionarSubMenu":
                    html+=seleccionarSubMenu(request, con);
                    break;
                case "busquedaAvanzada":
                    html+=busquedaAvanzada(request, con);
                    break;
            }
            response.setCharacterEncoding("UTF-8");
            response.setContentType("text/plain");
            response.getWriter().write(html);
            con.Close();
        } catch (SQLException ex) {
            Logger.getLogger(CON_BUSCAR_COMPROBANTES_CONTROLLER.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    
    public String busquedaTipo(HttpServletRequest request, Conexion con ){
        String html="";
        try{
            double tipo=Double.parseDouble(request.getParameter("tipo"));
            CON_COMPROBANTE p = new CON_COMPROBANTE();
            p.setCon(con);
            CON_FECHA_CIERRE fecha=new CON_FECHA_CIERRE();
            fecha.setCon(con);
            
            int mes = fecha.mesActual();
            int ano = fecha.anoActual();
            
            if(mes>12)
            {
                mes=1;
            }
            
            String estado=request.getParameter("anulado");
            String cargo=request.getParameter("cargocuenta");
            List<CON_COMPROBANTE> lista = p.BusquedaTipo(tipo,estado,cargo,(mes+"-"+ano));
            for (int i = 0; i < lista.size(); i++)
            {
                html+="<div class=\'subMenu\' data-tipo='"+lista.get(i).getCODIGO_RECURRENTE()+"' data-value=\'"+lista.get(i).getID()+"\'><div style=' display: inline-block; padding-left: 6px; width:87%;'>"+lista.get(i).getCODIGO()+"  <span>"+lista.get(i).getGLOSA()+"</span></div><div  style='display: inline-block;  width:5%; margin-top: -5px; fond:16px;'><a class='btnEliminar' style='font-size: 20px;' onclick=\"eliminarComprobante("+lista.get(i).getID()+",this)\">x</a></div></div>";
            }
        }catch(Exception e){
            
        }
        return html;
    }
    public String desvincularCargo(HttpServletRequest request, Conexion con ){
        String html="";
        try{
            double id=Double.parseDouble(request.getParameter("id"));
            CON_COMPROBANTE p = new CON_COMPROBANTE();
            p.setCon(con);
            p.desvincularCargo(id);
        }catch(Exception e){
            
        }
        return html;
    }
    public String obtenerListaTipo(HttpServletRequest request, Conexion con ){
        CON_TIPO_RECURRENTE recurrente=new CON_TIPO_RECURRENTE();
        recurrente.setCon(con);
        String html=recurrente.jsonTodo();
        return html;
    }
    public String AnularComprobante(HttpServletRequest request, Conexion con ){        
        try{
            double id=Double.parseDouble(request.getParameter("id"));
            CON_COMPROBANTE p = new CON_COMPROBANTE();
            CON_CUENTA_COMPROBANTE c=new CON_CUENTA_COMPROBANTE();
            c.setCon(con);
            p.setCon(con);
            p.setID(id);
            COB_FACTURA factura=new COB_FACTURA();
            CON_CHEQUE cheque=new CON_CHEQUE();
            factura.setCon(con);
            cheque.setCon(con);
            List<CON_CUENTA_COMPROBANTE> lista=c.Buscar(id);
            CON_COMPROBANTE comprobante = new CON_COMPROBANTE();
            comprobante.setCon(con);
            comprobante=comprobante.BuscarXid(id);
            double recurrencia=comprobante.getCODIGO_RECURRENTE();            
            if(recurrencia==9)
            {
                CON_FECHA_CIERRE fechac = new CON_FECHA_CIERRE();
                fechac.setCon(con);
                int mes=fechac.mesActual();
                int ano=fechac.anoActual();
                RHH_PAGOS_QUINCENA_CABECERA cabe = new RHH_PAGOS_QUINCENA_CABECERA(con).Buscar(ano, mes);
                cabe.setESTADO(1);
                cabe.Modificar();
            }
            if(recurrencia==10)
            {
                CON_FECHA_CIERRE fechac = new CON_FECHA_CIERRE();
                fechac.setCon(con);
                int mes=fechac.mesActual();
                int ano=fechac.anoActual();
                RHH_PLANILLA_EMPLEADOS_CABECE cabe = new RHH_PLANILLA_EMPLEADOS_CABECE(con).Buscar(ano, mes);
                cabe.setESTADO(1);
                cabe.Modificar();
            }                        
            if(recurrencia==14)
            {
                CON_FECHA_CIERRE fechac = new CON_FECHA_CIERRE();
                fechac.setCon(con);
                int mes=fechac.mesActual();
                int ano=fechac.anoActual();
                RHH_QUINQUENIO_CABECERA cabe = new RHH_QUINQUENIO_CABECERA(con).Buscar(ano, mes);                
                new RHH_QUINQUENIO(con).EliminarXcabecera(cabe.getID()); 
                new CON_PLANILLA_PAGO_QUINQUENIO(con).EliminarXcabecera(cabe.getID());
                cabe.EliminarXid();
            }
            if(recurrencia==15)
            {
                CON_FECHA_CIERRE fechac = new CON_FECHA_CIERRE();
                fechac.setCon(con);
                int mes=fechac.mesActual();
                int ano=fechac.anoActual();
                RHH_PLANILLA_FINIQUITO_CABECE cabe = new RHH_PLANILLA_FINIQUITO_CABECE(con).Buscar(ano, mes);
                cabe.setESTADO(1);
                cabe.Modificar();
            }
            if(recurrencia==16)
            {
                CON_FECHA_CIERRE fechac = new CON_FECHA_CIERRE();
                fechac.setCon(con);
                int mes=fechac.mesActual();
                int ano=fechac.anoActual();
                RHH_PLANILLA_PROV_AGUINAL_CABE prov = new RHH_PLANILLA_PROV_AGUINAL_CABE(con).Buscar(ano, mes);
                prov.setESTADO(0);
                prov.Modificar();
            }
            if(recurrencia==17)
            {
                CON_FECHA_CIERRE fechac = new CON_FECHA_CIERRE();
                fechac.setCon(con);
                int mes=fechac.mesActual();
                int ano=fechac.anoActual();
                RHH_PLANILLA_PROV_PRIMA_CABE prov = new RHH_PLANILLA_PROV_PRIMA_CABE(con).Buscar(ano, mes);
                prov.setESTADO(0);
                prov.Modificar();
            }
            if(recurrencia==18)
            {
                CON_FECHA_CIERRE fechac = new CON_FECHA_CIERRE();
                fechac.setCon(con);
                int mes=fechac.mesActual();
                int ano=fechac.anoActual();
                RHH_PLANILLA_PREV_INDEM_CABE prov = new RHH_PLANILLA_PREV_INDEM_CABE(con).Buscar(ano, mes);
                prov.setESTADO(0);
                prov.Modificar();
            }
            if(recurrencia==19)
            {
                CON_FECHA_CIERRE fechac = new CON_FECHA_CIERRE();
                fechac.setCon(con);
                int mes=fechac.mesActual();
                int ano=fechac.anoActual();
                RHH_PLANILLA_RETROACTIVO_CABE prov = new RHH_PLANILLA_RETROACTIVO_CABE(con).Buscar(ano, mes);
                prov.setESTADO(0);
                prov.Modificar();
            }
            if(recurrencia==20)
            {
                CON_AGUINALDO_CABECE_COMPRO acc = new CON_AGUINALDO_CABECE_COMPRO(con).Buscar((int)comprobante.getID());
                if(acc!=null)
                {
                    RHH_PLANILLA_AGUINALDO_CABECE prov =new RHH_PLANILLA_AGUINALDO_CABECE(con).Buscar(acc.getID_CABECERA_AGUINALDO());
                    prov.setESTADO(1);
                    prov.Modificar();                    
                }                
                
            }
            if(recurrencia==21)
            {
                CON_FECHA_CIERRE fechac = new CON_FECHA_CIERRE();
                fechac.setCon(con);
                int mes=fechac.mesActual();
                int ano=fechac.anoActual();
                RHH_PLANILLA_EMPLEADOS_CABECE cabe = new RHH_PLANILLA_EMPLEADOS_CABECE(con).Buscar(ano, mes);
                cabe.setESTADO_IMPO(1);
                cabe.Modificar();
            }
            if(recurrencia==22)
            {
                CON_PRIMA_CABECE_COMPROBANTE acc = new CON_PRIMA_CABECE_COMPROBANTE(con).Buscar((int)comprobante.getID());
                if(acc!=null)
                {
                    RHH_PLANILLA_PRIMA_CABECE prov =new RHH_PLANILLA_PRIMA_CABECE(con).Buscar(acc.getID_CABECERA_PRIMA());
                    prov.setESTADO(1);
                    prov.Modificar();                    
                }                
            }
            if(recurrencia==23)
            {
                CON_PRIMA_PEN_CABECE_COMPRO acc = new CON_PRIMA_PEN_CABECE_COMPRO(con).Buscar((int)comprobante.getID());
                if(acc!=null)
                {
                    RHH_PLANILLA_PRIMA_CABE_PENDI prov =new RHH_PLANILLA_PRIMA_CABE_PENDI(con).Buscar(acc.getID_CABECERA_PRIMA_PENDIENTE());
                    prov.setESTADO(1);
                    prov.Modificar();                    
                }                
            }
            for (int i = 0; i < lista.size(); i++) {
                if(lista.get(i).getCHEQUE() == 0.0 && lista.get(i).getID_FACTURA() == 0.0)continue;
               if(lista.get(i).getCHEQUE() != 0.0){
                   cheque=cheque.BuscarXid(lista.get(i).getCHEQUE());
                   if(cheque.getESTADO()==0){
                        return "F";
                    }
               }
                if(lista.get(i).getID_FACTURA() != 0.0){
                    factura=factura.BuscarXid(lista.get(i).getID_FACTURA());
                    if(factura.getESTADO_ANULADO()==0){
                        return "F";
                    }
                }
                
            }
            p.AnularXid();
            return "T";
        }catch(Exception e){
            return "F";
        }        
    }
    public String busquedaAvanzada(HttpServletRequest request, Conexion con ){
        String html="";
        try{
            
            double tipo=Double.parseDouble(request.getParameter("tipo"));
            double montoDesde=Double.parseDouble(request.getParameter("montoDesde"));
            double montoHasta=Double.parseDouble(request.getParameter("montoHasta"));
            String concepto=request.getParameter("concepto");
            String desde=request.getParameter("desde");
            String hasta=request.getParameter("hasta");
            String codigo=request.getParameter("codigo");
            String descripcion=request.getParameter("descripicon");
            String glosaDetalleta=request.getParameter("glosacuenta");
            CON_COMPROBANTE p = new CON_COMPROBANTE();
            p.setCon(con);
            String estado=request.getParameter("anulado");
            String cargo=request.getParameter("cargocuenta");
            List<CON_COMPROBANTE> lista = p.BuscarAvanzada(tipo, codigo, concepto, desde, glosaDetalleta, hasta, descripcion, montoDesde,montoHasta,estado,cargo);
            for (int i = 0; i < lista.size(); i++)
            {
                html+="<div class=\'subMenu\' data-tipo='"+lista.get(i).getCODIGO_RECURRENTE()+"' data-value=\'"+lista.get(i).getID()+"\'><div style=' display: inline-block; padding-left: 6px; width:87%;'>"+lista.get(i).getCODIGO()+"  <span>"+lista.get(i).getGLOSA()+"</span></div><div  style='display: inline-block;  width:5%; margin-top: -5px; fond:16px;'><a class='btnEliminar' style='font-size: 20px;' onclick=\"eliminarComprobante("+lista.get(i).getID()+",this)\">x</a></div></div>";
            }
        }catch(Exception e){
            
        }
        return html;
    }
    public String seleccionarSubMenu(HttpServletRequest request, Conexion con ) throws SQLException{
        String id=request.getParameter("IdSubMenu");
        String html="";
        if(id!=null)
        {
            String cargocuenta=request.getParameter("cargoCuenta");
            CON_COMPROBANTE p = new CON_COMPROBANTE();
            p.setCon(con);
            p = p.BuscarXid(Double.parseDouble(id));
            CON_CUENTA_COMPROBANTE ccp = new CON_CUENTA_COMPROBANTE();
            ccp.setCon(con);
            List<CON_CUENTA_COMPROBANTE> listac = ccp.Buscar(p.getID());
            List<CON_COMPROBANTE> listaComprobante=p.BuscarCargoCuenta(Double.parseDouble(id));
            double total2=0;
            if(listaComprobante != null)
            for (int i = 0; i < listaComprobante.size(); i++) {
                total2+=listaComprobante.get(i).getMONTO_NUMERAL();
            }
            String disasdable=total2 >=p.getMONTO_NUMERAL()?"disabled":"";
            if(cargocuenta.equals("1")){
                html+="<div style='text-align: center;'><button onclick='abrirComprobante()' >ABRIR COMPROBANTE</button></div><div style=\"margin-left: 10%\"><span class='negrilla'>CODIGO: </span> "+p.getCODIGO()+" <br>";
            }else{
                html+="<div style='text-align: center;'><button "+disasdable+" onclick='abrirComprobante()' >PAGO DE CARGO DE CUENTA</button></div><div style=\"margin-left: 10%\"><span class='negrilla'>CODIGO: </span> "+p.getCODIGO()+" <br>";
            }
            html+="<span class='negrilla'>FECHA: </span> "+p.getFECHA()+" <br>";
            html+="<span class='negrilla'>Concepto: </span> "+p.getGLOSA()+" </div><br>";
            html+="<table border='1' style='margin-left:100px '>";
            html+="<thead>";
            html+="<th class=\"normal\">CODIGO</th>";
            html+="<th class=\"Extragrande\">CUENTA</th>";
            html+="<th class=\"mediano\">GLOSA</th>";
            html+="<th class=\"pequeño\">DEBE</th>";
            html+="<th class=\"pequeño\">HABER</th>";
            html+="<th class=\"pequeño\">DEBE</th>";
            html+="<th class=\"pequeño\">HABER</th>";
            html+="</thead>";
            html+="<tbody id='detallet'>";
            double total =0;
            double idmoneda=0;
            for (int i = 0; i < listac.size(); i++)
            {
                html+="<tr>";
                String codigo = "";
                CON_CUENTA_CONTABLE cuenta = new CON_CUENTA_CONTABLE(con);
                cuenta.setCon(con);
                cuenta = cuenta.BuscarXid(listac.get(i).getID_CUENTA());
                if(listac.get(i).getID_CENTRO_COSTO()!=0)
                {
                    CON_CENTRO_COSTO centro = new CON_CENTRO_COSTO(con);
                    centro.setCon(con);
                    centro=centro.BuscarXid(listac.get(i).getID_CENTRO_COSTO());
                    codigo =centro.getCODIGO();
                }
                else
                {
                    codigo = cuenta.getCODIGO();
                }
                idmoneda=cuenta.getID_MONEDA();
                html+="<td data-id='"+(int)cuenta.getID()+"'>"+codigo+"</td>";
                html+="<td>"+listac.get(i).getDESCRIPCION()+"</td>";
                html+="<td name='glosa' data-moneda='"+idmoneda+"'>"+listac.get(i).getGLOSA()+"</td>";
                html+="<td>"+listac.get(i).getDEBE()+"</td>";
                html+="<td>"+listac.get(i).getHABER()+"</td>";
                html+="<td>"+listac.get(i).getDEBE_TC()+"</td>";
                html+="<td>"+listac.get(i).getHABER_TC()+"</td>";
                total+=listac.get(i).getHABER_TC();
                html+="</tr>";
            }
            html+="</tbody>";
            html+="<tfoot>";
            html+="<td colspan='3' style='text-align: right;'>TOTAL:</td>";
            html+="<td colspan='4' style='text-align: center;'>"+total+"</td></tfoot>";
            html+="</table><br>";
            html+="<div style=\"margin-left: 10%\"><span class='negrilla'>Glosa: </span> "+p.getDESCRIPCION()+"<br></div><br>  <br>";
            html+="<div class='contenedor50'><div style=\"TEXT-ALIGN: CENTER; \"><span class='negrillaenter'>MONEDA</span></div>";
            CON_TIPO_DE_CAMBIO ccp2 = new CON_TIPO_DE_CAMBIO();
            ccp2.setCon(con);
            
            List<CON_TIPO_DE_CAMBIO> listac2 = ccp2.BuscarXid(p.getID());
            
            CON_MONEDA mon = new CON_MONEDA();
            mon.setCon(con);
            
            html+="<table border='1' style='TEXT-ALIGN: CENTER; ' >";
            html+="<thead>";
            html+="<th>MONEDA</th>";
            html+="<th>CAMBIO</th>";
            html+="<th>COLOR</th>";
            html+="</thead>";
            html+="<tbody id='moneda'>";
            total =0;
            String ColoresDefault []= {"#68C8BC","#A7CE51","#C5EAF3","#77A7F7","#9C95C9","#EE9B55","#FBC00C","#FDFCC0","#76B900","#F7865E"};
            for (int i = 0; i < listac2.size(); i++)
            {
                html+="<tr>";
                mon=mon.BuscarXid(listac2.get(i).getID_MONEDA());
                html+="<td data-id='"+listac2.get(i).getID_MONEDA()+"'>"+mon.getACRONIMO()+"</td>";
                html+="<td>"+listac2.get(i).getTIPO_CAMBIO()+"</td>";
                html+="<td><input type='color' value='"+ColoresDefault[i]+"'></td>";
                html+="</tr>";
            }
            
            html+="</tbody>";
            html+="</table style='TEXT-ALIGN: CENTER; '></div>";
            
            html+="<div name='cargoR' style='display:none;' class='contenedor50'><div style=\"TEXT-ALIGN: CENTER; \"><span class='negrillaenter'>LISTA DE PAGO</span></div><table border='1' style='margin-left:100px '>";
            total =0;
            html+="<thead><th>COD</th><th>CONCEPTO</th><th>MONTO</th><th></th></thead><tbody>";
            for (int i = 0; i < listaComprobante.size(); i++)
            {
                html+="<tr>";
                html+="<td class='chico'>"+listaComprobante.get(i).getCODIGO()+"</td>";
                html+="<td class='grande' onclick='abrirComprobanteCargo("+listaComprobante.get(i).getID()+")'>"+listaComprobante.get(i).getGLOSA()+"</td>";
                html+="<td class='normal' >"+listaComprobante.get(i).getMONTO_NUMERAL()+"</td>";
                html+="<td class='chico' onclick='desvincularCargo("+listaComprobante.get(i).getID()+",this)'><img src='../img/iconos/cerrar.png' alt=''/></td>";
                html+="</tr>";
            }
            html+="</tbody></table></div>";
            
        }
        return html;
    }
    public String busqueadaRapida(HttpServletRequest request, Conexion con ){
        String html="";
        try{
            String desc=request.getParameter("desc");
            double tipo=Double.parseDouble(request.getParameter("tipo"));
            CON_COMPROBANTE p = new CON_COMPROBANTE();
            p.setCon(con);
            String estado=request.getParameter("anulado");
            String cargo=request.getParameter("cargocuenta");
            CON_FECHA_CIERRE fecha=new CON_FECHA_CIERRE();
            fecha.setCon(con);
            
            int mes=fecha.mesActual();
            int ano=fecha.anoActual();
            
            if(mes>12)
            {
                mes=1;
            }
            List<CON_COMPROBANTE> lista = p.BuscarRapida(desc, tipo,estado,cargo,(mes+"-"+ano));
            
            for (int i = 0; i < lista.size(); i++)
            {
                html+="<div class=\'subMenu\' data-tipo='"+lista.get(i).getCODIGO_RECURRENTE()+"' data-value=\'"+lista.get(i).getID()+"\'><div style=' display: inline-block; padding-left: 6px; width:87%;'>"+lista.get(i).getCODIGO()+"  <span>"+lista.get(i).getGLOSA()+"</span></div><div  style='display: inline-block;  width:5%; margin-top: -5px; fond:16px;'><a class='btnEliminar' style='font-size: 20px;' onclick=\"eliminarComprobante("+lista.get(i).getID()+",this)\">x</a></div></div>";
            }
        }catch(Exception e){
            return "";
        }
        return html;
    }
    
    /**
     * Handles the HTTP <code>POST</code> method.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }
    
    /**
     * Returns a short description of the servlet.
     *
     * @return a String containing servlet description
     */
    @Override
    public String getServletInfo() {
        return "Short description";
    }// </editor-fold>
    
}
